#!/bin/bash

#------------------------------------------------------------------------------
#Filename:      84404-lvm.sh
#Version:       1.0
#Date:          2014/06/24
#Author:        xi.zhang
#Email:         xi.zhang@cs2c.com.cn
#Summary:       02.02系统管理功能-02逻辑卷管理-02字符命令-06扩展逻辑卷
#Notes:         扩展逻辑卷
#Copyright:     China Standard Software Co.,Ltd.
#History:
#               Version 1.0,2014/06/24
#               -The first one
#               Version 1.1,2014/10/22
#               -The second one
#               -Add SFROOT
#               -Rename variables
#               -Add notes
#               -Add CleanData Function
#               -Add trap
#------------------------------------------------------------------------------

if [ -z "$SFROOT" ]
then
    CMDLIB=./
    SFROOT=./
else
    CMDLIB=${SFROOT}/testcases/Management_Function
fi

. ${SFROOT}/lib/UserOps.sh
. ${CMDLIB}/lib/Partition_parted.sh
. ${CMDLIB}/lib/PV.sh
. ${CMDLIB}/lib/VG.sh
. ${CMDLIB}/lib/LV.sh

IsRoot
EchoResult "脚本执行用户为root"

export PVNUM=2                          #物理卷数目
export VGNAME=vgroup-$$                 #卷组名称   
export LVNAME=lvgroup-$$                #逻辑卷名称
export LVSIZE=5                         #逻辑卷大小
export LVPATH=/dev/${VGNAME}/${LVNAME}  #逻辑卷路径

function CleanData()
{
  EchoInfo "Umount Filesystem"
  umount /${LVNAME}/ && rm -fr /${LVNAME}

  EchoInfo "Delete LV"
  DeleteLV

  EchoInfo "Delete VG"
  DeleteVG

  EchoInfo "Delete PV"
  DeletePV
}

trap CleanData INT EXIT

GetHarddisk

CreatePV
EchoResult "Step 1 :Create PV"

CreateVG
EchoResult "Step 2 :Create VG"

echo "y" |CreateLV
EchoResult "Step 3 :Create LV"

#Create filesystem
mkfs.ext4 /dev/${VGNAME}/${LVNAME}
EchoResult "Step 4: Make filesystem"

#mount filesystem
[ -d /${LVNAME} ] && rm -fr /${LVNAME}
mkdir /${LVNAME}
mount /dev/${VGNAME}/${LVNAME} /${LVNAME}
EchoResult "Step 5: Mount filesystem"

#create file
echo "test-$$ LV" > /${LVNAME}/test-$$
EchoResult "Step 6: Create file"
ls /${LVNAME}

#Extend LV
export LVADD=1                    #设置逻辑卷扩展大小
lvextend -L +${LVADD}G /dev/${VGNAME}/${LVNAME}
EchoResult "Step 7: Extend LV"

#Resize2fs LV
NEWSIZE=`expr ${LVSIZE} + ${LVADD}`
resize2fs -p -f /dev/${VGNAME}/${LVNAME} ${NEWSIZE}G
EchoResult "Step 8: Resize2fs LV"

#判断原文件仍然存在
[ -n `ls /${LVNAME} | grep "test-$$"` ]
EchoResult "Step 9: Check file still exists"

EchoInfo "Sleep 5 seconds before umount..."
sleep 5
